Badanie PISA (Programme for International Student Assessment) jest największym na świecie badaniem umiejętności uczniów, realizowanym co trzy lata we wszystkich państwach członkowskich OECD (Organisation for Economic Co-operation and Development) oraz kilkudziesięciu krajach partnerskich.
W ramach pracy domowej zdecydowałam się przeanalizować dane z badania PISA 2018 dotyczące absencji i spóźnień uczniów (ang. Student truancy and lateness) z 48 krajów europejskich.
Poniższy interaktywny wykres mapowy przedstawia procent uczniów z danego kraju, którzy w czasie 2 tygodni poprzedzających badanie PISA: ani razu, 1-2 razy, 3-4 razy lub 5 i więcej razy opuścili cały dzień szkolnych zajęć.
knitr::opts_chunk$set(echo = TRUE)
df <- read_excel("late.xlsx")
df %>% mutate(Code = countrycode(Country, "country.name", "iso3c")) -> df
europe_df <- subset(df, Country %in% c("Albania", "Andorra", "Armenia", "Austria",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria",
"Croatia", "Cyprus", "Czechia","Denmark","Estonia","Finland",
"France","Georgia", "Germany", "Greece","Hungary","Iceland",
"Ireland", "Italy", "Kosovo", "Latvia","Liechtenstein",
"Lithuania", "Luxembourg","Malta","Moldova","Monaco","Montenegro",
"Macedonia", "Netherlands","Norway","Poland","Portugal","Romania",
"San Marino","Serbia","Slovakia","Slovenia","Spain",
"Sweden","Switzerland","Turkey","Ukraine","UK","Vatican"))
slider_columns <- c("Never", "Once_twice", "Three_four", "Five_more")
slider_desc <- c("Ani razu", "1-2 razy", "3-4 razy", "5 lub więcej")
aval <- list()
for(step in 1:4){
aval[[step]] <-list(visible = FALSE,
name = paste0(''),
z = europe_df[[slider_columns[[step]]]],
locations = europe_df$Code,
color = europe_df[[slider_columns[[step]]]])
}
aval[1][[1]]$visible = TRUE
df2 <- read_excel("whole_day.xlsx")
df2 %>% mutate(Code = countrycode(Country, "country.name", "iso3c")) -> df
europe_df2 <- subset(df2, Country %in% c("Albania", "Andorra", "Armenia", "Austria",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria",
"Croatia", "Cyprus", "Czechia","Denmark","Estonia","Finland",
"France","Georgia", "Germany", "Greece","Hungary","Iceland",
"Ireland", "Italy", "Kosovo", "Latvia","Liechtenstein",
"Lithuania", "Luxembourg","Malta","Moldova","Monaco","Montenegro",
"Macedonia", "Netherlands","Norway","Poland","Portugal","Romania",
"San Marino","Serbia","Slovakia","Slovenia","Spain",
"Sweden","Switzerland","Turkey","Ukraine","UK","Vatican"))
# create steps and plot all traces
steps <- list()
fig2 <- plot_geo(locations = europe_df2$Code)
for (i in 1:4) {
fig2 <- add_trace(
fig2,
z = aval[i][[1]]$z,
locations = aval[i][[1]]$locations,
color = aval[i][[1]]$color,
visible = aval[i][[1]]$visible,
name = aval[i][[1]]$name
)
step <- list(args = list('visible', rep(FALSE, length(aval))),
method = 'restyle',
label=slider_desc[[i]])
step$args[[2]][i] = TRUE
steps[[i]] = step
}
fig2 <- fig2 %>%
layout(sliders = list(list(active = 1,
currentvalue = list(prefix = "Ile razy w ciągu ostatnich 2 tygodni opuściłeś/aś cały dzień szkoły? Odp.: "),
steps = steps)),
geo = list(lonaxis = list(range = c(-20, 40)),
lataxis = list(range = c(35, 80))
))
fig2
Następny wykres przedstawia procent uczniów z danego kraju, którzy w czasie 2 tygodni poprzedzających badanie PISA: ani razu, 1-2 razy, 3-4 razy lub 5 i więcej razy opuścili pojedyncze szkolne zajęcia.
knitr::opts_chunk$set(echo = TRUE)
df <- read_excel("late.xlsx")
df %>% mutate(Code = countrycode(Country, "country.name", "iso3c")) -> df
europe_df <- subset(df, Country %in% c("Albania", "Andorra", "Armenia", "Austria",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria",
"Croatia", "Cyprus", "Czechia","Denmark","Estonia","Finland",
"France","Georgia", "Germany", "Greece","Hungary","Iceland",
"Ireland", "Italy", "Kosovo", "Latvia","Liechtenstein",
"Lithuania", "Luxembourg","Malta","Moldova","Monaco","Montenegro",
"Macedonia", "Netherlands","Norway","Poland","Portugal","Romania",
"San Marino","Serbia","Slovakia","Slovenia","Spain",
"Sweden","Switzerland","Turkey","Ukraine","UK","Vatican"))
slider_columns <- c("Never", "Once_twice", "Three_four", "Five_more")
slider_desc <- c("Ani razu", "1-2 razy", "3-4 razy", "5 lub więcej")
aval <- list()
for(step in 1:4){
aval[[step]] <-list(visible = FALSE,
name = paste0(''),
z = europe_df[[slider_columns[[step]]]],
locations = europe_df$Code,
color = europe_df[[slider_columns[[step]]]])
}
aval[1][[1]]$visible = TRUE
df3 <- read_excel("some_classes.xlsx")
df3 %>% mutate(Code = countrycode(Country, "country.name", "iso3c")) -> df
europe_df3 <- subset(df3, Country %in% c("Albania", "Andorra", "Armenia", "Austria",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria",
"Croatia", "Cyprus", "Czechia","Denmark","Estonia","Finland",
"France","Georgia", "Germany", "Greece","Hungary","Iceland",
"Ireland", "Italy", "Kosovo", "Latvia","Liechtenstein",
"Lithuania", "Luxembourg","Malta","Moldova","Monaco","Montenegro",
"Macedonia", "Netherlands","Norway","Poland","Portugal","Romania",
"San Marino","Serbia","Slovakia","Slovenia","Spain",
"Sweden","Switzerland","Turkey","Ukraine","UK","Vatican"))
# create steps and plot all traces
steps <- list()
fig3 <- plot_geo(locations = europe_df3$Code)
for (i in 1:4) {
fig3 <- add_trace(
fig3,
z = aval[i][[1]]$z,
locations = aval[i][[1]]$locations,
color = aval[i][[1]]$color,
visible = aval[i][[1]]$visible,
name = aval[i][[1]]$name
)
step <- list(args = list('visible', rep(FALSE, length(aval))),
method = 'restyle',
label=slider_desc[[i]])
step$args[[2]][i] = TRUE
steps[[i]] = step
}
fig3 <- fig3 %>%
layout(sliders = list(list(active = 1,
currentvalue = list(prefix = "Ile razy w ciągu ostatnich 2 tygodni opuściłeś/aś jakieś zajęcia szkolne? Odp.: "),
steps = steps)),
geo = list(lonaxis = list(range = c(-20, 40)),
lataxis = list(range = c(35, 80))
))
fig3
Ostatni wykres w tej części przedstawia procent uczniów z danego kraju, którzy w czasie 2 tygodni poprzedzających badanie PISA: ani razu, 1-2 razy, 3-4 razy lub 5 i więcej razy spóźnili się na zajęcia.
knitr::opts_chunk$set(echo = TRUE)
df <- read_excel("late.xlsx")
df %>% mutate(Code = countrycode(Country, "country.name", "iso3c")) -> df
europe_df <- subset(df, Country %in% c("Albania", "Andorra", "Armenia", "Austria",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria",
"Croatia", "Cyprus", "Czechia","Denmark","Estonia","Finland",
"France","Georgia", "Germany", "Greece","Hungary","Iceland",
"Ireland", "Italy", "Kosovo", "Latvia","Liechtenstein",
"Lithuania", "Luxembourg","Malta","Moldova","Monaco","Montenegro",
"Macedonia", "Netherlands","Norway","Poland","Portugal","Romania",
"San Marino","Serbia","Slovakia","Slovenia","Spain",
"Sweden","Switzerland","Turkey","Ukraine","UK","Vatican"))
slider_columns <- c("Never", "Once_twice", "Three_four", "Five_more")
slider_desc <- c("Ani razu", "1-2 razy", "3-4 razy", "5 lub więcej")
aval <- list()
for(step in 1:4){
aval[[step]] <-list(visible = FALSE,
name = paste0(''),
z = europe_df[[slider_columns[[step]]]],
locations = europe_df$Code,
color = europe_df[[slider_columns[[step]]]])
}
aval[1][[1]]$visible = TRUE
# create steps and plot all traces
steps <- list()
fig <- plot_geo(locations = europe_df$Code)
for (i in 1:4) {
fig <- add_trace(
fig,
z = aval[i][[1]]$z,
locations = aval[i][[1]]$locations,
color = aval[i][[1]]$color,
visible = aval[i][[1]]$visible,
name = aval[i][[1]]$name
)
step <- list(args = list('visible', rep(FALSE, length(aval))),
method = 'restyle',
label=slider_desc[[i]])
step$args[[2]][i] = TRUE
steps[[i]] = step
}
fig <- fig %>%
layout(sliders = list(list(active = 1,
currentvalue = list(prefix = "Ile razy w ciągu ostatnich 2 tygodni spóźniłeś/aś się na zajęcia szkolne? Odp.: "),
steps = steps)),
geo = list(lonaxis = list(range = c(-20, 40)),
lataxis = list(range = c(35, 80))
))
fig